Transportation route error detection and adjustment

ABSTRACT

Methods and systems for correcting errors in transportation routes are provided. In one embodiment, a method is provided that includes receiving a transportation request that includes at least two locations. A first route prediction may be generated based on a first set of previously-completed routes associated with the at least two locations. A first predictive model may compare the first route prediction with route information associated with a second set of previously-completed routes identified based on the first route prediction. A second route prediction may be generated based on the comparison and may be sent to a mobile device for presentation to a user.

BACKGROUND

Individuals desiring transportation (e.g., transportation by vehicle)between two locations can submit transportation requests totransportation providers. When fulfilling these transportation requests,transportation providers may predict routes associated with fulfillingthe transportation request. For example, the transportation provider maypredict a route followed by a vehicle when fulfilling the transportationrequest.

SUMMARY

The present disclosure presents new and innovative systems and methodsto detect and correct errors in predicted transportation routes. In oneaspect, a method is provided comprising receiving, by a transportationmatching system, a transportation request from a mobile device, whereinthe transportation request includes at least two locations andgenerating, in response to the transportation request, a first routeprediction, wherein the first route prediction is based on a first setof previously-completed routes associated with the at least twolocations. The method may further include comparing the first routeprediction with route information associated with a second set ofpreviously-completed routes identified at least in part based on thefirst route prediction and identifying, based on the comparison, atleast one route prediction error in the first route prediction. Themethod may also include generating, based on the at least one routeprediction error, a second route prediction for the transportationrequest and sending, from the transportation matching system to themobile device, the second route prediction.

In a second aspect according to the first aspect, the second set ofpreviously-completed routes is identified based on at least onesimilarity with the first route prediction selected from the groupconsisting of a similar predicted starting location, a similar predictedending location, a similar predicted travel distance, a similarpredicted travel time, and a similar predicted route.

In a third aspect according to the first or second aspects, the at leastone route prediction error includes at least one error selected from thegroup consisting of a pickup time error for a vehicle assigned toservice the transportation request, a pickup distance error for avehicle assigned to service the transportation request, a travel timeerror for an amount of time spent in transit between the at least twolocations, and a distance error for a total amount of distance traveledbetween the at least two locations.

In a fourth aspect according to any of the first through third aspects,identifying the second set of previously-completed routes, comparing thefirst route prediction to actual route information corresponding to thesecond set of previously-completed routes, and generating the secondroute prediction are performed at least in part by a first predictivemodel.

In a fifth aspect according to the fourth aspect, the first predictivemodel receives a time for transportation between the at least twolocations and marketplace conditions associated with transportationbetween the at least two locations to generate the second routeprediction.

In a sixth aspect according any of to the first through fifth aspects, asecond predictive model generates the first route prediction.

In a seventh aspect according to any of the first through sixth aspects,the second route prediction includes one or more of a pickup time for avehicle assigned to service the transportation request, a drop-off timeassociated with the transportation request, and a travel time associatedwith the transportation request.

In an eighth aspect a system is provided including a processor and amemory. The memory may store instructions which, when executed by theprocessor, cause the processor to receive, by a transportation matchingsystem, a transportation request from a mobile device, wherein thetransportation request includes at least two locations and generate, inresponse to the transportation request, a first route prediction,wherein the first route prediction is based on a first set ofpreviously-completed routes associated with the at least two locations.The memory may store further instructions which, when executed by theprocessor, cause the processor to compare the first route predictionwith route information associated with a second set ofpreviously-completed routes identified at least in part based on thefirst route prediction and identify, based on the comparison, at leastone route prediction error in the first route prediction. The memory maystore still further instructions which, when executed by the processor,cause the processor to generate, based on the at least one routeprediction error, a second route prediction for the transportationrequest and send, from the transportation matching system to the mobiledevice, the second route prediction.

In a ninth aspect according to the eighth aspect the second set ofpreviously-completed routes is identified based on at least onesimilarity with the first route prediction selected from the groupconsisting of a similar predicted starting location, a similar predictedending location, a similar predicted travel distance, a similarpredicted travel time, and a similar predicted route.

In a tenth aspect according to the eighth or ninth aspects, the at leastone route prediction error includes at least one error selected from thegroup consisting of a pickup time error for a vehicle assigned toservice the transportation request, a pickup distance error for avehicle assigned to service the transportation request, a travel timeerror for an amount of time spent in transit between the at least twolocations, and a distance error for a total amount of distance traveledbetween the at least two locations.

In an eleventh aspect according to any of the eighth through tenthaspects, identifying the second set of previously-completed routes,comparing the first route prediction to actual route informationcorresponding to the second set of previously-completed routes, andgenerating the second route prediction are performed at least in part bya first predictive model.

In a twelfth aspect according to the eleventh aspect, the firstpredictive model receives a time for transportation between the at leasttwo locations and marketplace conditions associated with transportationbetween the at least two locations to generate the second routeprediction.

In a thirteenth aspect according to any of the eighth through twelfthaspects, a second predictive model generates the first route prediction.

In a fourteenth aspect according to any of the eighth through thirteenthaspects, the second route prediction includes one or more of a pickuptime for a vehicle assigned to service the transportation request, adrop-off time associated with the transportation request, and a traveltime associated with the transportation request.

In a fifteenth aspect, a method is provided comprising receiving, by atransportation matching system, a transportation request from a mobiledevice, wherein the transportation request includes at least twolocations and generating, in response to the transportation request, afirst route prediction, wherein the first route prediction is based on afirst set of previously-completed routes associated with the at leasttwo locations. The method may further comprise comparing, with a firstpredictive model, the first route prediction with route informationassociated with a second set of previously-completed routes identifiedat least in part based on the first route prediction and generating,based on the comparison with the first predictive model, a second routeprediction for the transportation request. The method may still furtherinclude receiving, after fulfillment of the transportation request,actual route information corresponding to the fulfillment of thetransportation request, determining one or more errors between thesecond route prediction and the actual route information, and updatingthe first predictive model based on the one or more errors.

In a sixteenth aspect according to the fifteenth aspect, updating thefirst predictive model includes updating one or more weights used toidentify the second set of previously-completed routes.

In a seventeenth aspect according to the fifteenth or sixteenth aspects,a second predictive model generates the first route prediction.

In an eighteenth aspect according to the seventeenth aspect, the methodfurther comprises identifying, based on the comparison with the firstpredictive model, at least one route prediction error in the first routeprediction and updating the second predictive model based on the atleast one route prediction error.

In a nineteenth aspect according to the eighteenth aspect, the at leastone route prediction error includes at least one error selected from thegroup consisting of a pickup time error for a vehicle assigned toservice the transportation request, a pickup distance error for avehicle assigned to service the transportation request, a travel timeerror for an amount of time spent in transit between the at least twolocations, and a distance error for a total amount of distance traveledbetween the at least two locations.

In a twentieth aspect according to the eighteenth or nineteenth aspects,updating the second predictive model includes updating one or moreweights used to identify the first set of previously-completed routes.

The features and advantages described herein are not all-inclusive and,in particular, many additional features and advantages will be apparentto one of ordinary skill in the art in view of the figures anddescription. Moreover, it should be noted that the language used in thespecification has been principally selected for readability andinstructional purposes, and not to limit the scope of the disclosedsubject matter.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1A illustrates an environment for implementing an intelligenttransportation routing system.

FIG. 1B illustrates a transportation scenario according to an exemplaryembodiment of the present disclosure.

FIG. 2 illustrates a transportation scenario according to an exemplaryembodiment of the present disclosure.

FIG. 3 illustrates a system according to an exemplary embodiment of thepresent disclosure.

FIG. 4 illustrates an initial route prediction, a corrected routeprediction, an upfront fare, and a previous transportation routeaccording to exemplary embodiments of the present disclosure.

FIG. 5 illustrates a method according to an exemplary embodiment of thepresent disclosure.

FIG. 6 illustrates a method according to an exemplary embodiment of thepresent disclosure.

FIG. 7 illustrates a method according to an exemplary embodiment of thepresent disclosure.

FIG. 8 illustrates a computer system according to an exemplaryembodiment of the present disclosure.

FIG. 9 illustrates a network environment according to an exemplaryembodiment of the present disclosure.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Aspects of the present disclosure involve systems and methods forcorrecting errors (e.g., time and distance) in transportation routepredictions that predict a time and distance required to travel aspecific transportation route between two or more locations.

Various algorithms and processes currently exist for predicting atransportation route for a driver who intends to follow a specific pathor route of travel between two locations, or multiple locations. Forexample, many transportation providers use route prediction algorithmsand processes to provide route guidance to users. Transportationproviders may include transportation networking companies (TNCs). TNCsmay implement a transportation system that matches transportationrequests with a dynamic transportation network of vehicles. Thetransportation system may communicate with computing devices associatedwith the vehicles in the network. In certain instances, the vehicles mayinclude road-going vehicles and personal mobility vehicles. In someexamples, some of the vehicles may be standard commercially availablevehicles and some of the vehicles may be owned and/or operated byindividuals. In some implementations, the vehicles may additionally oralternatively be autonomous (or partly autonomous). Accordingly,throughout the instant disclosure, references to a “vehicle operator”(or an “operator”) may, where appropriate, refer to a human driving avehicle, an autonomous vehicle control system, an autonomous vehicle, anowner of an autonomous vehicle, an operator of an autonomous vehicle, anattendant of an autonomous vehicle, a requesting user piloting avehicle, and/or an autonomous system for piloting a vehicle. In oneexample, the TNC may implement multiple transportation systems, whereeach transportation system is responsible for coordinatingtransportation matching for a region or set number of vehicles. Incertain implementations, at least one of the transportation systems mayallow users to select an individual vehicle for use. For example, atransportation system allocating personal mobility vehicles such asbikes or scooters may allow users to individually select the personalmobility vehicle they will use.

The transportation system may communicate with computing devicesassociated with the vehicles, which may be separate computing devicesand/or may be integrated into the respective vehicles. In some examples,one or more of the computing devices may be mobile devices, such as asmart phone. Additionally or alternatively, one or more of the computingdevices may be tablet computers, personal digital assistants, or anyother type or form of mobile computing device. According to someexamples, one or more of the computing devices may include wearablecomputing devices (e.g., a driver-wearable computing device), such assmart glasses, smart watches, etc. In some examples, one or more of thecomputing devices may be devices suitable for temporarily mounting in avehicle (e.g., for use by a requestor and/or a transportation providerfor a transportation matching application, a navigation application,and/or any other application suited for use by requestors and/oroperators). Additionally or alternatively, one or more of the computingdevices may be devices suitable for installing in a vehicle and/or maybe a vehicle's computer that has a transportation management systemapplication installed on the computer to provide transportation servicesto transportation requestors and/or communicate with the transportationsystem.

Additionally, the transportation matching system may communicate withuser devices requesting transportation. In some examples, the userdevices requesting transportation may include a requestor appimplemented by the transportation provider. The requestor app mayrepresent any application, program, and/or module that may provide oneor more services related to requesting transportation services. Forexample, the requestor app may include a transportation matchingapplication for requestors. In some examples, the requestor app maymatch the user of the requestor app (e.g., a transportation requestor)with transportation operators through communication with thetransportation system. In addition, the requestor app may provide thetransportation system with information about a requestor (including,e.g., the current location of the requestor) to enable thetransportation system to provide dynamic transportation matchingservices for the requestor and one or more providers. In some examples,the requestor app may coordinate communications and/or a payment betweena requestor and a provider. According to some embodiments, requestor appmay provide a map service, a navigation service, a traffic notificationservice, and/or a geolocation service.

The transportation system may arrange transportation on an on-demandand/or ad-hoc basis by, e.g., matching one or more transportationrequestors with one or more transportation providers. For example, atransportation matching system may provide one or more transportationmatching services for a networked transportation service, a ridesourcingservice, a taxicab service, a car-booking service, an autonomous vehicleservice, a personal mobility vehicle service, or some combination and/orderivative thereof. The transportation system may include and/orinterface with any of a variety of subsystems that may implement,support, and/or improve the transportation matching service. Forexample, the transportation matching system may include a matchingsystem (e.g., that matches requestors to ride opportunities and/or thatarranges for requestors and/or providers to meet), a mapping system, arouting system (e.g., to help a provider reach a requestor, to help arequestor reach a provider, and/or to help a provider reach adestination), a rating system (e.g., to rate and/or gauge thetrustworthiness of a requestor and/or a provider), a payment system,and/or an autonomous or semi-autonomous driving system. Thetransportation matching system may be implemented on various platforms,including a requestor-owned mobile device, a computing system installedin a vehicle, a server computer system, or any other hardware platformcapable of providing transportation matching services to one or morerequestors and/or providers.

Turning now to the figures, FIG. 1A illustrates a schematic diagram ofan environment 100 for implementing an intelligent transportationrouting system 104 in accordance with one or more embodiments. Thisdisclosure provides an overview of the intelligent transportationrouting system 104 with reference to FIG. 1A. After providing anoverview, the disclosure describes components and processes of theintelligent transportation routing system 104 in further detail withreference to subsequent figures.

As shown in FIG. 1A, the environment 100 includes server(s) 102, arequestor client device 110, a provider client device 116, and a network108. The requestor client device 110 is associated with a requestor 114,and the provider client device 116 is associated with a provider 120.Both the requestor client device 110 and the provider client device 116are associated with a transportation vehicle 122. As FIG. 1A suggests,the provider 120 provides transportation to the requestor 114 using thetransportation vehicle 122.

As further shown in FIG. 1A, the server(s) 102 include an intelligenttransportation routing system 104 and a transportation routing database106. The intelligent transportation routing system 104 utilizes thenetwork 108 to communicate through the server(s) 102 with the requestorclient device 110 and the provider client device 116. For example, theintelligent transportation routing system 104, via the server(s) 102,communicates with the requestor client device 110 and the providerclient device 116 via the network 108 to determine locations of therequestor client device 110 and the provider client device 116. Perdevice settings, for instance, the intelligent transportation routingsystem 104 can utilize the server(s) 102 to receive GPS locations fromthe requestor client device 110 or the provider client device 116 toestimate a route traveled by the requestor client device 110 or theprovider client device 116, respectively.

As used in this disclosure, the term “GPS location” refers to dataindicating a computing device's location using a Global PositioningSystem (or similar system, such as Global System for MobileCommunications). For example, a GPS location includes altitudinal,longitudinal, and/or latitudinal coordinates or degrees that therequestor client device 110 or the provider client device 116 sends tothe server(s) 102 and the intelligent transportation routing system 104.In some instances, the intelligent transportation routing system 104receives data from such a client device encoded to represent a GPSlocation in various standard GPS formats, such as degrees, minutes, andseconds (“DMS”); degrees and decimal minutes (“DMM”), or decimal degrees(“DD”).

As suggested above, GPS locations may indicate a route traveled by therequestor client device 110 or the provider client device 116. The term“route” refers to a course traveled from one location to anotherlocation. In particular, a route includes a course traveled by a clientdevice from a starting location to a destination location. For example,a route may include a course traveled by the requestor client device 110in the transportation vehicle 122 while the transportation vehicle 122transports the requestor 114 from a pickup location to a destinationlocation. As another example, a route may include a course traveled bythe provider client device 116 in the transportation vehicle 122 afterthe provider 120 drops off the requestor 114 and travels to a differentlocation.

As suggested above, the term “requestor” refers to a person who requestsa ride or other form of transportation from the intelligenttransportation routing system 104. A requestor may refer to a person whorequests a ride or other form of transportation but who is still waitingfor pickup. A requestor may also refer to a person whom a transportationvehicle has picked up and who is currently riding within thetransportation vehicle to a destination (e.g., a destination indicatedby a requestor).

Relatedly, the term “requestor client device” refers to a computingdevice associated with (or used by) a requestor. A requestor clientdevice includes a mobile device, such as a laptop, smartphone, or tabletassociated with a requestor. But the requestor client device 110 mayalso be any type of computing device as further explained below withreference to FIG. 8 . The requestor client device 110 includes arequestor application 112. In some embodiments, the requestorapplication 112 comprise a web browser, applet, or other softwareapplication (e.g., native application) available to the requestor clientdevice 110.

A requestor may interact with a requestor application to requesttransportation services, receive a price estimate for the transportationservice, and access other transportation-related services. For example,the requestor 114 may interact with the requestor client device 110through graphical user interfaces of the requestor application 112 toinput a pickup location or a destination location for transportation.The intelligent transportation routing system 104, via the server(s)102, may in turn provide the requestor client device 110 with a priceestimate for the transportation and an estimated time of arrival of theprovider 120 (or the transportation vehicle 122) through the requestorapplication 112. Having received the price estimate and estimated timeof arrival, the requestor 114 may then select (and the requestor clientdevice 110 detect) a transportation-request option to requesttransportation services from the intelligent transportation routingsystem 104.

Relatedly, the term “provider” refers to a driver or other person whooperates a transportation vehicle and/or who interacts with a providerclient device. For instance, a provider includes a person who drives atransportation vehicle along various routes to pick up and drop offrequestors. As shown in FIG. 1A, in certain embodiments, thetransportation vehicle 122 includes or is associated with a provider.However, in other embodiments, the transportation vehicle 122 does notinclude a provider, but is instead an autonomous transportationvehicle—that is, a self-driving vehicle that includes computercomponents and accompanying sensors for driving without manual-providerinput from a human operator.

As noted above, both the provider 120 and the transportation vehicle 122are associated with the provider client device 116. The term “providerclient device” refers to a computing device associated with a provideror a transportation vehicle. The provider client device 116 may beseparate or integral to the transportation vehicle 122. For example, theprovider client device 116 may refer to a separate mobile device, suchas a laptop, smartphone, or tablet associated with the transportationvehicle 122. But the provider client device 116 may be any type ofcomputing device as further explained below with reference to FIG. 8 .Additionally, or alternatively, the provider client device 116 may be asubcomponent of a transportation vehicle. Regardless of its form, theprovider client device 116 may include various sensors, such as a GPSlocator, an inertial measurement unit, an accelerometer, a gyroscope, amagnetometer, and/or other sensors that the intelligent transportationrouting system 104 can access to obtain information, such as GPSlocations and other location information.

Relatedly, the term “transportation vehicle” refers to a vehicle thattransports one or more persons for an intelligent transportation routingsystem, such as an airplane, boat, automobile, motorcycle, or othervehicle. This disclosure primarily describes transportation vehicles asautomobiles, such as cars, mopeds, shuttles, or sport utility vehicles,but the intelligent transportation routing system 104 may use any othertransportation vehicle.

Although this disclosure often describes a transportation vehicle asperforming certain functions, the transportation vehicle includes anassociated provider client device that often performs a correspondingfunction. For example, when the intelligent transportation routingsystem 104 sends a transportation-request notification to thetransportation vehicle 122—or queries location information from thetransportation vehicle 122—the intelligent transportation routing system104 sends the transportation-request notification or location query tothe provider client device 116.

As further shown in FIG. 1A, the provider client device 116 includes aprovider application 118. In some embodiments, the provider application118 comprises a web browser, applet, or other software application(e.g., native application) available to the provider client device 116.In some instances, the intelligent transportation routing system 104provides data packets including instructions that, when executed by theprovider client device 116, create or otherwise integrate the providerapplication 118 within an application or webpage.

In some embodiments, the intelligent transportation routing system 104communicates with the provider client device 116 through the providerapplication 118. In addition to those communications, the providerapplication 118 optionally includes computer-executable instructionsthat, when executed by the provider client device 116, cause theprovider client device 116 to perform certain functions. For instance,the provider application 118 can cause the provider client device 116 tocommunicate with the intelligent transportation routing system 104 tosend data representing GPS locations or receive a transportation-requestnotification or navigate to a pickup location to pick up a requestor.

As shown in FIG. 1A, the intelligent transportation routing system 104receives communications via the server(s) 102. In certain embodiments,the server(s) 102 comprise a content server. The server(s) 102 can alsocomprise a communication server or a web-hosting server. This disclosuredescribes additional details regarding the server(s) 102 below withrespect to FIG. 8 . Although not illustrated in FIG. 1A, in someembodiments, the environment 100 may have a different arrangement ofcomponents and/or may have a different number or set of componentsaltogether. For example, in some embodiments, the intelligenttransportation routing system 104 and the provider client device 116 cancommunicate directly, bypassing the network 108.

In addition to communicating with the provider client device 116 toreceive GPS locations, the intelligent transportation routing system 104optionally stores data corresponding to each route traveled and eachtransportation request on a transportation routing database 106 accessedby the server(s) 102. Accordingly, the server(s) 102 may generate,store, receive, and transmit various types of data, including, but notlimited to, GPS locations, map-matched locations, location information,price estimates, estimated times of arrival, pickup locations, dropofflocations, and other data stored in the transportation routing database106. In some such embodiments, the intelligent transportation routingsystem 104 organizes and stores such data in the transportation routingdatabase 106 by geographic area, requestor, and/or time period.

Transportation providers may generate fixed fares upon receiving atransportation request from a requestor. For example, upon receiving atransportation request for transportation between two locations, thetransportation provider may predict a fare for transportation betweentwo locations. In particular, the predicted fare may be based on apredicted route between the two locations (e.g., based on a predictedtime and/or distance to travel between the two locations). In addition,the predicted fare may be based on user preferences, such as userpreferences for certain types of vehicles.

In some instances, the predicted route may include one or moreinaccuracies. In particular, the initial route prediction mayincorrectly estimate the route traveled, and therefore the distance,between the two locations specified in the transportation request. Thepredicted route may also inaccurately estimate the estimated time ofarrival or departure for a vehicle servicing the route, which can alterthe total amount of time necessary to fulfill transportation along theroute. For example, FIG. 1B depicts a transportation scenario 130 inwhich an incorrect route may be predicted. The received transportationrequest may have requested transportation from location 132 to location134. The initial route prediction may have predicted that thetransportation request would be fulfilled by traveling route 136 betweenthe locations, location 132 and location 134. However, alternativetransportations routes 138A-C are also possible. Thus, in certaininstances, a transportation provider may decide, or be required, to takeone of the alternative transportation routes 138A-C. For example, therequestor may request that the transportation provider travel along apreferred one of the alternative routes 138A-C, which is different fromthe predicted route 136. As another example, an unknown road closurealong the route 136 may require the transportation provider to utilizean alternative route 138A-C. As can be readily appreciated based on FIG.1B, the alternative routes 138A-C may have different travel distancesthan the route 136 (e.g., alternative route 138C is longer than theroute 136). Therefore, an actual distance traveled may differ from apredicted distance traveled.

As another example, the initial route prediction may inaccuratelyestimate the actual distance traveled based on inaccurate pickup and/ordrop off locations. For example, FIG. 2 depicts a pickup scenario 200 inwhich a requestor has requested transportation from the location 132. Inthe pickup scenario 200, the initial route prediction may be based on aroute 204, along which a transportation provider is expected to travelto pick up the requestor at the location 132. However, in practice, therequestor may actually located at and therefore picked up at thealternative pickup locations 202A-C. For example, the requestor may becontacted by the transportation provider and requested to move to one ofthe alternative pickup locations 202A-C (e.g., to avoid traffic, roadclosures). The requestor may also proceed towards an assigned vehicleupon seeing the vehicle approach the pickup location 132 (e.g., therequestor may walk towards the vehicle to alternative pickup 202C uponseeing it turn the corner). Further, the pickup location 132 may simplybe inaccurate (e.g., based on inaccurate location sensor measurements).For example, the requestor may actually be picked up at the alternativepickup location 202A, not location 132. In any of the above scenarios,changes to an alternative pickup location 202A-C may come withcorresponding changes to an alternative route 206A-B, or an earlytermination of the pickup route 204. Additionally, the transportationprovider may take a different route to the pickup location 132 or to analternative pickup location 202A-C (e.g., due to transportation providerpreferences or due to a mistake such as a missed turn). The actualdistance traveled to pick up the requestor may therefore differ from thepredicted distance of the pickup route 204. Similar changes to the dropoff location or drop off route may also result in similar changes to thedistance traveled.

Relatedly, the initial route prediction may be based on an inaccurateprediction of a transportation time for the transportation request. Forexample and with reference to FIG. 1B, an alternative route 138A-C takenby a transportation provider may have different traffic (i.e.,navigation congestion) than the predicted route 136. Such navigationcongestion, combined with the difference in actual distance traveled,may result in a different amount of time spent in transportation. Forexample, although the alternative route 138C is longer in distance thanthe route 136, the alternative route 138C may have less navigationcongestion and may therefore require less time to travel. In suchinstances, the distance may be longer and the transportation time may beshorter, resulting in an inaccurate initial route prediction.

A transportation provider, such as a TNC, may be required to compensatea transportation provider for the time and distance required to pick upthe requestor from location 132. Therefore, differences in the routeand/or location to pick up a requestor may result in more or less timespent travelling to the requestor, which may change the actual route andcost for transportation between the locations 132, 134 and the ultimateaccuracy of the initial route prediction, impacting any fixed faregenerated by the TNC that were based on the route prediction

The time and distance inaccuracies of the routes used to generate theinitial route prediction may therefore need to be corrected to properlyprovide upfront fares to requestors requesting transportation. Certaintechniques may involve adjusting a fare multiplier based on previousprediction errors, but such techniques may not be able to accuratelyimprove the upfront fares themselves, and further, lack transparencyinto the causes of the initial route prediction errors.

Thus, to solve these technical problems, among others, the disclosedsystem automatically analyzes generated route predictions forinaccuracies in the routes (e.g., time and distance inaccuracies). Inparticular, the initial route prediction can be compared to completedfares for similar transportation routes that were completed previously.Such a comparison may be performed by a predictive model to analyze howthe initial route prediction for the similar transportation routesdiffer from actual route completed for the actual fare (i.e., the actualfare paid for by the transportation provider). Based on the comparison,a corrected route prediction can be generated for the requestedtransportation route. The corrected route prediction may identify howthe initial route prediction was incorrect (e.g., may identify certaintypes of errors within the initial route prediction, such as time anddistance errors).

FIG. 3 depicts a system 300 according to an exemplary embodiment of thepresent disclosure. The system 300 may be configured to predict atransportation route and generate and present an upfront fare to arequestor based on the predicted transportation route. The system 300includes a user device 302, a completed transportation route database310, and a server 324. The user device 302 may be configured to generateand transmit transportation requests 304. The transportation request 304may be generated by an application, such as a transportation networkcompany application, to request transportation from a starting location306 to an ending location 308. The locations 306, 308 may be specifiedby, e.g., global positioning system (GPS) or other location coordinates.

The completed transportation route database 310 may contain informationon previous transportation routes 312, 318. The previous transportationroute 312 may include predicted and actual route information regardingthe transportation route performed to fulfill a previously-receivedtransportation request. In particular, and as illustrated in FIG. 4 ,the predicted route information may include one or more of a predictedstarting location 462, a predicted ending location 464, a predictedtravel time 466, a predicted distance 467, and a predicted route 468.The predicted route information may correspond to an initial routeprediction generated in response to the previously-receivedtransportation request and may have been used to generate and present anupfront fare to a requestor in response to receiving the transportationrequest.

The actual route information may include one or more of an actualstarting location 470, an actual ending location 472, an actual traveltime 474, an actual distance 475, and an actual route 476. The actualroute information may reflect the actual route taken to fulfill thepreviously-received transportation request, including any changes to thepredicted route 468 taken by a transportation provider, as well as anychanges in starting and ending locations and the distance and traveltime required to complete the transportation request. In certainimplementations, after fulfilling the previously-received transportationrequest, the server 324 may store the predicted route information andthe actual route information as the previous transportation route 312 inthe completed transportation route database 310. Although not depicted,the previous transportation route 318 may include information and datasimilar to the information and data of the previous transportation route312. The previous transportation routes 312, although not depicted, mayalso store information regarding the estimated time of arrival and/ordeparture along with the actual time of arrival or departure. These maybe compared to estimated times of arrival and/or departure of theinitial route prediction 330 and the corrected route prediction 336 toidentify corresponding errors in each.

Referring again to FIG. 3 , the server 324 may be configured to generatean upfront fare 340 for presentation to the requestor device 302, inresponse to received transportation requests 304. In particular, theserver 324 may implement an initial route prediction process 326, whichwhen executed, generates an initial route prediction 330. Additionally,the server 324 may implement a route correction process 332, which whenexecuted, generates a corrected route prediction 336 based on theinitial route prediction 330. The server 324 may further include anupfront fare adjustment process 338 to generate an upfront fare 340based on the corrected route prediction 336.

The initial route prediction process 326 may be configured to receivethe starting location 306 and the ending location 308, specified in atransportation request 304, to generate an initial route prediction 330between the starting location 306 and the ending location 308. Forexample and with reference to FIGS. 1 and 3 , the initial routeprediction process 326 may generate the initial route prediction 330predicting the initial route 136 between locations 132 and 134.

To generate the initial route prediction 330, the predictive model 328may process information indicative of routes traveled for transportationbetween the starting location 306 and the ending location 308. Forexample, the predictive model 328 may analyze previous transportationroutes 312, 318 that are similar to the starting location 306 and/orending location 308 used to generate the initial route prediction 330.The “similar” previous transportation routes 312, 318 (i.e., routes thatare similar to the initial route prediction 330) may be identified byexamining the actual route information stored by and/or within theprevious transportation routes 312, 318. For example, the initial routeprediction process 326 may identify previous transportation routes 312,318, as being similar to the initial route prediction 330, because theprevious transportation routes 312, 318 include actual startinglocations 470 that are near the starting location 306 and/or actualending locations 472 that are near the ending location 308. For example,a previous transportation route 312, 318 may be identified as similar ifthe actual starting location 470 is within a threshold distance of thestarting location 306 of the transportation request 304. Similarly, aprevious transportation route 312, 318 may be identified as similar ifthe actual ending location 472 is within a threshold distance of theending location 308 of the transportation request 304. In certainimplementations, the threshold distance may be, e.g., 10 feet, 100 feet,1 block, or more. In still further implementations, the thresholddistance may vary or dynamically updated based on the number of previoustransportation routes 312 with actual starting locations 470 and/oractual ending locations 472 that are respectively near the startinglocation 306 and the ending location 308. For example, if there are asmall number of such previous transportation routes 312, 318, thethreshold distance may be set higher (e.g., so the initial routeprediction process 326 has sufficient previous transportation routes312, 318 for comparison). On the other hand, if there are many suchprevious transportation routes 312, 318, the threshold distance may beset lower (e.g., so the initial route prediction process relies only onthe previous transportation routes 312, 318 that are most similar). Instill further implementations, the predictive model 328 may be trainedto identify which previous transportation routes 312, 318 qualify assufficiently similar for generating the initial route prediction 330.Additionally, the previous transportation route 312, 318 may storeindications of the starting and ending locations in an associated,previously-received transportation request. In such a scenario, theinitial route prediction process 326 may identify previoustransportation routes 312, 318 as “similar”, because the previoustransportation routes 312, 318 share similar requested starting andending locations (e.g., with “similar” determined with criteriaanalogous to those discussed above regarding the actual routeinformation of the previous transportation routes 312, 318).

In performing the comparison, the initial route prediction process 326may weight or otherwise combine information stored within thecorresponding previous transportation routes 312, 318. For example, asdepicted in FIG. 4 , the previous transportation route 312 may store anactual travel time 474, an actual distance 475, and an actual route 476.The initial route prediction process 326 may compare the actual traveltimes 474 across the previous transportation routes 312, 318 that aresimilar. For example, the initial route prediction process 326 maycompare the actual travel times 474 to identify a range of typicaltravel times likely between the starting location 306 and the endinglocation 308. The initial route prediction process 326 may also comparethe actual distances 475 of the previous transportation routes 312, 318that are similar. For example, the initial route prediction process maycompare the actual distances 475 to identify a range, or one or moredistance thresholds, of typical travel distances likely between thestarting location 306 and the ending location 308. In certainimplementations, the predictive model 328 may be trained to performthese comparisons (e.g., by combining or otherwise processingcorresponding previous transportation routes 312. Similarly, the initialroute prediction process 326 may analyze the actual routes 475 indicatedby the previous transportation route 312 to generate the predicted route420. In certain implementations, the initial route prediction process326 may give more weight or influence to previous transportation routes312, 318 that are more similar to the received transportation request304.

As shown in FIG. 4 , the initial route prediction 330 may be generatedto include a starting location 412 and an ending location 414. Incertain implementations, the starting location 412 and the endinglocation 414 may be the same as the starting location 306 and the endinglocation 308. In other implementations, the initial route predictionprocess 326 may be configured to make an initial estimate of alternativepickup locations 202A-C or drop off locations and the starting location412 and ending location 414 may therefore differ from the startinglocation 306 and the ending location 308.

The initial route prediction 330 may also include one or more of apredicted distance 416, a predicted travel time 418, and a predictedroute 420. The predicted route 420 may represent the initial estimate(e.g., time and distance) for transportation between the startinglocation 412 and the ending location 414. The predicted route 420 may bestored as, e.g., coordinates indicating the path covered by a vehicletransporting a requestor along the predicted route 420. In certainimplementations, the predicted distance 416 may be calculated based onthe predicted route 420, e.g., by calculating a total distance coveredby a vehicle transporting a requestor along the predicted route 420.Similarly, the predicted travel time 418 may be calculated based on thepredicted route 420, e.g., an estimated amount of time for a vehicle totransport a requestor along the predicted route 420. In otherimplementations, the predicted travel time 418 may be calculated atleast in part based on the similar previous transportation routes 312,318 (e.g., based on the actual travel time 474).

In certain implementations, the initial route prediction 330 may begenerated by a predictive model, such as the predictive model 328. Forexample, the predictive model 328 may be configured to identify andcompare the similar previous transportation route 312, 318. Inparticular, the predictive model 328 may be trained to generate theinitial route prediction 330 based on the received transportationrequest 304. For example, the predictive model 328 may be trained togenerate the initial route prediction 330 by identifying previoustransportation routes 312, 318 that are similar to the transportationrequest 304 (e.g., previous transportation routes 312, 318 that involvetransportation between locations similar to the starting location 306and/or ending location 308). In particular, the predictive model 328 maybe trained on training data specifying (i) starting and ending locations306, 308 for a particular previous transportation route 312, 318 and(ii) actual route information for the previous transportation route 312,318. The predictive model 328 may be trained to generate initial routepredictions 330 that are feasible, but these initial predictions may notalways accurately represent, e.g., in distance or in time, the actualroutes taken to fulfill transportation requests 304.

The inaccuracies of the initial route predictions 330 may result fromthe configuration of the prediction model 328. For example, thepredictive model 328 may be configured to generate the initial routeprediction 330 to meet a minimum accuracy threshold based on theprevious transportation routes 312, 318 under certain performanceconstraints (e.g., time or computing resource constraints). Therefore,the initial route prediction 330 may be primarily generated to providean initial estimate of the time and distance required for transportationfrom the starting location 306 to the ending location 308.

The route correction process 332 may therefore be configured to generatea corrected route prediction 336 based on the initial route prediction330 and the transportation request 304. For example, the routecorrection process 332 may receive the initial route prediction 330 andthe transportation request 304. The route correction process 332 maycompare the initial route prediction 330 with previous transportationroutes 312, 318 that are similar to the transportation request 304 toidentify one or more errors in the initial route prediction 330. Asdiscussed above, similar previous transportation routes 312, 318 may beidentified from the completed transportation route database 310 based onan actual starting location 470 and/or an actual ending location 472that are located near the starting location 306, 412 and/or the endinglocation 308, 414. However, the route correction process 332 may furtheridentify previous transportation routes 312, 318 as being similar, ifthe previous transportation routes 312, 318 contain predicted routeinformation that is similar to the initial route prediction 330 (e.g.,where “similar” previous transportation routes 312, 318 are identifiedusing criteria similar to those discussed above, but applied topredicted route information). In particular, the route correctionprocess 332 may identify previous transportation routes 312, 318 withpredicted starting locations 462 that are similar to the startinglocation 412 of the initial route prediction 330 and/or with predictedending locations 464 that are similar to the ending location 414 of theinitial route prediction 330.

Additionally or alternatively, similar previous transportation routes312, 318 may be identified that have a predicted route 468, a predictedtravel time 466, and/or a predicted distance 467, any one of which maybe similar to the predicted route 468, the predicted travel time 418,and/or the predicted distance 416. In particular, the route correctionprocess 332 may determine a level of similarity between the previoustransportation routes 312, 318, and the initial route prediction, andmay select the previous transportation routes 312, 318 with a similaritymeasure above a certain threshold as the similar previous transportationroutes 312, 318. Relatedly, the route correction process 332 may selecta certain number or certain proportion of the previous transportationroutes 312, 318 (e.g., 100, 1,000, or more routes, or the most similar1%, 5%, 10% of routes), and consider such selected routes as previoustransportation routes that are similar to the initial route prediction.By incorporating the predicted route information when identifyingsimilar previous transportation routes, the route correction process 332may identify different routes than those utilized by the initial routeprediction process (e.g., routes that were predicted to start near alocation 132 but actually started near an alternative location 202A-C,or routes that were predicted to follow a certain route 136 but didnot).

Once similar previous transportation routes 312 are identified, theroute correction process 332 may compare the similar previoustransportation routes 312, 318 to generate the corrected routeprediction 336. For example, the route correction process 332 mayperform the comparison to generate the corrected route prediction 336 byweighting or otherwise combining information from the previoustransportation routes 312, 318 that most closely resemble the initialroute prediction 330. For example, the route correction process 332 maycombine information regarding the actual route 476, the actual distance475, the actual travel time 474, the actual ending time 472, and theactual starting location 470 from the similar previous transportationroutes 312, 318 to generate the corrected route prediction 336. Inparticular, the route correction process 332 may give a higher weightthe actual information from previous transportation routes 312, 318 withone or more similar pieces of predicted route information 462, 464, 466,467, 468 with the initial route prediction 330.

The corrected route prediction 336 may be generated to include one ormore corrected pieces of information from the initial route prediction330. For example, as depicted in FIG. 4 , the corrected route prediction336 may include one or more of a corrected starting location 432, acorrected ending location 434, a corrected distance 436, a correctedtravel time 438, and/or a corrected route 440. These corrected pieces ofinformation may respectively represent corrected forms of the startinglocation 412, the ending location 414, the predicted distance 416, thepredicted travel time 418, and the predicted route 420 determined basedon the similar previous transportation routes 312, 318. For example, ifthe route correction process 332 determines that the starting location412 is unlikely to be the actual starting location of the transportationroute (e.g., because the similar previous transportation routes 312, 318indicate that one or more alternative locations 202A-C are more likely),the route correction process 332 may generate a corrected startinglocation 432 indicating the more likely starting location of thetransportation route. The route correction process 332 may similarlygenerate a corrected ending location 434 upon determining, based on thesimilar previous transportation routes 312, 318, that the endinglocation 414 is unlikely to be the ending location of the transportationroute. The corrected distance 436 may also be generated if the routecorrection process 332 determines that the predicted distance 416 isunlikely to be the actual distance traveled fulfilling thetransportation request 304. For example, if the similar previoustransportation routes 312, 318 indicate that transportation between thelocations 412, 414 typically result in detours (e.g., around traffic orother road conditions), the actual routes taken may differ, causing achange in the actual distance traveled. The route correction process 332may therefore generate, based on the similar previous transportationroutes 312, 318, the corrected distance 436 to accurately represent themost likely distance traveled on the transportation route. Additionallyor alternatively, changes to the starting location 412 in the endinglocation 414 indicated by the corrected starting location 432 in thecorrected ending location 434 may also result in changes to the distancetraveled, necessitating a corrected distance 436. For example, if thecorrected ending location 434 and the corrected starting location 432are further apart than the starting location 412 and the ending location414, the actual distance traveled between the corrected startinglocation 432 and the corrected ending location 434 may increase relativeto the predicted distance 416. Therefore, a corrected distance 436 maybe necessary that reflects the correct, longer distance.

In some instances, the route correction process 332 may also generate acorrected route 440, where a change in route 136 to an alternative route138A-C is likely based on the similar previous transportation routes312, 318. Furthermore, based on any of the above changes and/or afterdetermining, based on the similar previous transportation routes 312,318, that road conditions or other circumstances are likely to result ina change in travel time from the predicted travel time 418, the routecorrection process 332 may generate a corrected travel time 438.Depending on the accuracy of the initial route prediction 330, thecorrected route prediction 336 may only include one or a subset ofcorrected pieces of information 432, 434, 436, 438, 440. In particular,if one or more pieces of information contained within the initial routeprediction 330 are determined (e.g., based on the similar previoustransportation routes 312, 318) to be correct, the correct informationmay be included in its original form within the corrected routeprediction 336. For example, both the starting and ending locations 412,414 may be correct, but the route taken between the starting and endinglocations 412, 414 may differ. In such an instance, the starting andending locations 412, 414 may be included within the corrected routeprediction 336, while the corrected route 440 indicates the more likelyroute, along with the appropriate corrected distance 436 and correctedtravel time 438 as needed based on the corrected route 440.

In certain implementations, the corrected route prediction 336 may begenerated by a predictive model, such as the predicted model 334. Forexample, the predictive model 334 may be trained to identify, based onpredicted route information, similar previous transportation routes 312,318 within the completed transportation route database 310 and/or toanalyze the previous transportation routes 312, 318 according to one ormore of the techniques discussed above. In particular, the predictivemodel 334 may be trained to perform one or more of the operationsdiscussed on all or a subset of the data within the completedtransportation route database 310.

For example, the predictive model 334 may be trained by receiving: 1)one or more pieces of predicted route information corresponding to thetypes of information included in the initial route prediction 330; and2) actual route information corresponding to actual routes taken forpreviously-predicted trips. In particular, the predicted startinglocation 462 may correspond to a starting location 412 generated by theinitial route prediction process 326 and the predicted ending location464 may correspond to an ending location 414 generated by the initialroute prediction process 326. Similarly, the predicted travel time 466,the predicted distance 467, and the predicted route 468 may correspondto the predicted distance 416, the predicted travel time 41A, and thepredicted route 420 from an initial route prediction 330 generated for apreviously-completed transportation request. The predicted routeinformation may be compared to the actual route information 470, 472,474, 475, 476 during training to identify how initial route predictions330 generated by the initial route prediction process 326 typicallydiffer from the actual routes taken. The predictive model 334 may thenbe trained to generate the corrected route prediction 336 to correctthese errors and thereby generate a prediction that more closelycorresponds to the actual transportation route taken to fulfill theprevious transportation requests. Furthermore, the predictive model 334may be trained to incorporate additional types of information, such asthe time of day or week at which a transportation request 304 isreceived, current weather conditions, current traffic conditions,current nearby events, and/or current overall marketplace conditionsnearby on a transportation platform provided by the transportationprovider (e.g., ridership levels as compared to current capacity fornearby vehicles).

The corrected route prediction 336 may also be generated to specify oneor more types of errors in the initial route prediction 330. Inparticular, the corrected route prediction 336 may include one or moreof a pickup time error 442, a travel time error 444, a pickup distanceerror 446, and a travel distance error 448. The pickup distance error446 may be generated when the starting location 412 generated by theinitial route prediction process 326 differs from the corrected startinglocation 432. The locations 412, 432 may differ by a certain distance,which may be specified by the pickup distance error. The pickup timeerror 442 may be calculated in similar situations and may reflect thedifference in time required to pick up a requestor given the differencebetween the corrected starting location 432 and the starting location412, as in the scenario 200. The travel distance error 448 may begenerated when the corrected distance 436 differs from the predicteddistance 416 (e.g., because the corrected route 440 differs from thepredicted route 420). The travel distance error 448 may indicate anamount by which the distances 416, 436 differ. The travel time error 444may be generated when the corrected travel time 438 differs from thepredicted travel time 318 (e.g., because the corrected route 440 differsfrom the predicted route 420, because traffic or other road conditionsalter the expected travel time along the predicted route). In certainimplementations, the route correction process 332 may calculate theerrors 442, 444, 446, 448 based on the one or more pieces of correctedinformation 432, 434, 436, 438, 440. For example, the predictive model334 may be trained to generate the corrected information 432, 434, 436,438, 440, which are then utilized by the route correction process 332(e.g., heuristics included within the route correction process 332) togenerate the errors 442, 444, 446, 448.

In other implementations, the predictive model 334 may directly predictthe errors 442, 444, 446, 448 based on the initial route prediction 330and the transportation request 304. For example, the predictive model334 may be trained to predict the corrected information 432, 434, 436,438, 440 and the errors 442, 444, 446, 448 during the same process. Instill further implementations, the predictive model 334 may not directlydetermine the corrected information 432, 434, 436, 438, 440 and mayinstead only be trained to predict the errors 442, 444, 446, 448. Insuch implementations, the corrected information 432, 434, 436, 438, 440may not be included in the corrected route prediction 336.

Although the initial route prediction process 326 and the routecorrection process 332 may each be implemented at least in part bypredictive models 328, 334, these predictive model 328, 334 may beconfigured differently. For example, the predictive model 328 may betrained to make a different prediction from the predictive model 334. Inparticular, the predictive model 328 may be configured to generate aninitial, feasible prediction of a route 136 connecting the startinglocation 306 to the ending location 308, along with associated time anddistance estimates. Further, to reduce processing time, data inputs tothe predictive model 328 may be comparatively limited (e.g., thepredictive model 328 may only consider the transportation request 304and previous transportation routes 312, 318).

However, because the predictive model 334 receives the initial routeprediction 330, the predictive model 334 may instead be directed torefining and correcting the initial route 136 predicted by thepredictive model 328. Because of this, the predictive model 334 mayconsider additional data inputs from those available to the predictivemodel 328 (e.g., the predicted route information from the previoustransportation routes 312, 318, weather information, traffic and roadconditions) without suffering unacceptable performance delays.Furthermore, because the route correction process 332 is configured toincorporate predicted route information stored in the previoustransportation routes 312, 318, the predictive model 334 may beseparately trained to incorporate and adjust for idiosyncrasies of thepredictive model 328. For example, the predictive model 328 mayregularly make certain types of mistakes (e.g., in placing the startinglocation 412 in the ending location 414, or failing to account fordifferences in travel time in certain areas due to traffic and otherroad conditions). Because the predictive model 334 may be trained toincorporate the specifics of the initial route prediction 330 andprevious predicted route information generated by the initial routeprediction process 326, the predictive model 334 may resolve thesesystemic inaccuracies without having to resort to more complex models orprediction processes.

Such a two-tiered approach to route prediction may both reduce thecomputing resources required and also reduce processing time, therebyincreasing accuracy while also enabling timely responses totransportation requests 304. For example, in certain implementations, ifa single predictive model were configured to incorporate the data inputsof both the predictive model 328 and the predictive model 334, thepredictive model may be too resource intensive to generate routepredictions in time to present the upfront fare 340 to the user device302. Therefore, by utilizing two predictive models 328, 334 to firstgenerate an initial route prediction 330 and then refine and correctthat prediction to generate a corrected route prediction 336, the server324 may be able to receive and process transportation requests 304 withmore accurate route predictions without utilizing excessive computingresources or sacrificing system responsiveness for the system 300.

In certain implementations, the predictive models 328, 334 may beimplemented as one or more machine learning models, including supervisedlearning models, unsupervised learning models, and other types ofmachine learning models. For example, the predictive models 328, 334 mayeach be implemented as one or more of a regression model, a neuralnetwork, a decision tree model, a support vector machine, and a Bayesiannetwork. In certain implementations, the predictive model 328 and thepredictive model 334 may be implemented as different types of machinelearning models. However, in other implementations, the predictivemodels 328, 334 may both be implemented as regression models.

The upfront fare adjustment process 338 may receive the corrected routeprediction 336 and may generate an upfront fare 340 for presentation tothe user device 302. For example, as shown in FIG. 4 , the upfront fare340 may include a predicted fare 452. The predicted fare 452 may begenerated based on the corrected distance 436 and corrected travel time438 indicated in the corrected route prediction 336. The predicted fare452 may be adjusted to account for one or more customer orbusiness-related factors, as discussed above. For example, a requestorassociated with the user device 302 may be a frequent customer of thetransportation provider implementing the server 324 and the adjustedfare 454 may be generated to provide the requestor with a discount. Inanother example, the corrected route 440 may result in the vehicleproviding the transportation ending in a location with minimaltransportation demand, in which case the adjusted fare 454 may begenerated to account for the cost of returning the vehicle to an areawith sufficient transportation demand. Once generated, the upfront fare340 may be transmitted to the user device 302 for presentation to therequestor (e.g., via an application provided by the transportationprovider).

One or more of the user device 302, the completed transportation routedatabase 310, and the server 324 may be implemented by a computingsystem. For example, although not depicted, one or more of the userdevice 302, the completed transportation route database 310, and theserver 324 may include a processor and a memory that implement at leastone operational feature. For example, the memory may containinstructions which, when executed by the processor, cause the processorto implement at least one operational feature of the user device 302,the completed transportation route database 310, and/or the server 324.

It should also be appreciated that, although embodiments of the previoustransportation routes 312, the initial route prediction 330, thecorrected route prediction 336, and the upfront fare 340 depicted inFIG. 4 were discussed above, additional or alternative implementationsmay be possible and are hereby contemplated. For example, in certainimplementations, one or more of the previous transportation route 312,the initial route prediction 330, the corrected route prediction 336,and the upfront fare 340 may include additional pieces of information,may exclude certain pieces of information, or both.

FIG. 5 depicts a method 500 according to an exemplary embodiment of thepresent disclosure. The method 500 may be performed to receive andprocess transportation requests 304, e.g., to predict transportationroutes for fulfilling transportation requests 304. The method 500 may beimplemented on a computer system, such as the system 300. For example,method 500 may be implemented by the server 324 and/or the completedtransportation route database 310. The method 500 may also beimplemented by a set of instructions stored on a computer readablemedium that, when executed by a processor, cause the computer system toperform the method. Although the examples below are described withreference to the flowchart illustrated in FIG. 5 , many other methods ofperforming the acts associated with FIG. 5 may be used. For example, theorder of some of the blocks may be changed, certain blocks may becombined with other blocks, one or more of the blocks may be repeated,and some of the blocks described may be optional.

The method 500 may begin with the server 324 receiving a transportationrequest 304 (block 502). The transportation request 304 may be receivedfrom a requestor and may request transportation from a starting location306 to an ending location 308. The server 324 may then generate aninitial route prediction 330 for fulfilling the transportation request304 (block 504). For example, the initial route prediction process 326may generate an initial route prediction 330 including a predicted route420 between the starting location 306 to the ending location 308. Asexplained above, the initial route prediction 330 may be generated atleast in part using a predictive model 328 and may include one or moreroute inaccuracies (e.g., time and or distance inaccuracies). In certainimplementations, block 502 may be optional. For example, rather thanreceiving the transportation request 304 at block 502 and generating theinitial route prediction 330 at the server, block 504 may be performedat least in part by a mobile device associated with the requestor.

The server 324 may then receive the initial route prediction 330 (block506). For example, the route correction process 332 may receive theinitial route prediction 330 from the initial route prediction process326 for correction. The route correction process 332 may then comparethe initial route prediction to similar previous transportation routes312, 318 (block 508). For example, the route correction process 332 maycompare predicted route information 412, 414, 416, 418, 420 from theinitial route prediction 330 with information from the similar previoustransportation routes 312 (e.g., a second set of similar previoustransportation routes 312 at least partially different from the previoustransportation routes 312 used to generate the initial route prediction330). In particular, the similar previous transportation routes 312, 318may be identified by comparing the predicted route information 412, 414,416, 418, 420 from the initial route prediction 330 with predicted routeinformation 462, 464, 466, 467, 468 from the previous transportationroute 312. The route correction process 332 may then identify one ormore errors in the initial route prediction 330 requiring correction.For example, one or more of the starting location 412, the endinglocation 414, the predicted distance 416, the predicted travel time 418,and the predicted route 420 may be incorrect based on the comparison tothe similar previous transportation routes 312, 318.

The server 324 may therefore generate a corrected route prediction 336(block 510). For example, for each of the errors identified at block508, the route correction process 332 may generate corrected information432, 434, 436, 438, 4404 inclusion within the corrected route prediction336. Additionally or alternatively, the route correction process 332 maygenerate one or more of a pickup time error 442, a travel time error444, a pickup distance error 446, and a travel distance error 448identifying corresponding errors in the initial route prediction 330, asdiscussed above. In certain implementations, the corrected routeprediction 336 may also include an amount of error for each type oferror 442, 444, 446, 448. As discussed above, one or both of blocks 508,510 may be implemented by the predictive model 334, which may be trainedto identify and correct common errors within the predictive model 328.Further, the predictive model 334 may be trained to consider additionaltypes of information, such as weather conditions along the predictedroute 420 and/or the corrected route 440, a time of the day or week atwhich the transportation request 304 is to be fulfilled, and/or trafficand road conditions along the predicted route 420 and/or the correctedroute 440. Accordingly, the corrected route prediction 336 may representa more accurate estimation of the transportation route required tofulfill the transportation request 304.

In certain implementations, the corrected route prediction 336 may thenbe processed by the upfront fare adjustment process 338 to generate anupfront fare 340 for presentation to the user device 302 in response tothe received transportation request 304. Based on the upfront fare 340,a requestor associated with the user device 302 may then accept or denytransportation services from the transportation provider implement inthe server 324. In still further implementations, the corrected routeprediction 336 may not be used to generate the upfront fare 340, but mayinstead be used to further train or refine the predictive model 334, asdiscussed further below.

FIG. 6 depicts a method 600 according to an exemplary embodiment of thepresent disclosure. The method 600 may be performed to train thepredictive model 334 of the route correction process 332 based on actualroute information for completed transportation routes. The method 600may be implemented on a computer system, such as the system 300. Forexample, the method 600 may be implemented by the server 324 and/or thecompleted transportation route database 310. The method 600 may also beimplemented by a set of instructions stored on a computer readablemedium that, when executed by a processor, cause the computer system toperform the method. Although the examples below are described withreference to the flowchart illustrated in FIG. 6 , many other methods ofperforming the acts associated with FIG. 6 may be used. For example, theorder of some of the blocks may be changed, certain blocks may becombined with other blocks, one or more of the blocks may be repeated,and some of the blocks described may be optional.

The method 600 may begin with receiving actual route informationcorresponding to the transportation route after completion (block 602).For example, after generating the corrected route prediction 336, arequestor may accept the upfront fare 340 presented in response to thetransportation request 304. The transportation provider may then proceedwith fulfilling the transportation request (e.g., by transporting therequestor using one or more vehicles such as cars, scooters, andbicycles). During fulfillment of the transportation request, the server324 may collect actual route information regarding the transportationroute taken. For example, the server 324 may collect one or more of anactual starting location 470, an actual ending location 472, an actualtravel time 474, an actual distance 475, and an actual route 476,similar to those above in connection with the previous transportationroute 312.

The server 324 may then determine errors between the corrected routeprediction 336 and the actual route information 470, 472, 474, 475, 476(block 604). For example, the server 324 may identify one or morediscrepancies between items of the corrected route information 432, 434,436, 438, 440 and the corresponding pieces of actual route information470, 472, 474, 475, 476. These differences may be identified as errorsfor training purposes. Based on these errors, the predictive model 334may be updated (block 606). For example, during a training procedure ofthe predictive model 334, the corrected information 432, 434, 436, 438,440 and the actual route information 470, 472, 474, 475, 476 may beprovided along with the identified errors. The predictive model 334 maythen be updated during the training process (e.g., by adjusting one ormore weights, inputs, or other configuration settings of the predictivemodel 334).

By performing the method 600, the predictive model 334 may beself-correcting and may improve in accuracy over time. For example,performing the method 600 may enable the predictive model 334 toidentify and learn from previous mistakes by adjusting theconfigurations of the predictive model 334 to account for thesemistakes. Similarly, in certain implementations, the method 600 may beused to initially train the predictive model 334. For example, where theabsolute accuracy of the predictive model 334 may be in doubt, themethod 500 may be performed to generate a corrected route prediction 336for incoming transportation requests 304, but the corrected routeprediction 336 may not be used for generation of the upfront fare 340.Rather, the corrected route prediction 336 may be stored andsubsequently compared with actual route information collected duringfulfillment of the received transportation requests 304 for trainingpurposes according to the method 600. This process may be repeated untilthe predictive model 334 is trained sufficiently to generate correctedroute predictions 336 accurate enough to form the basis for an upfrontfare 340.

In still further implementations, the corrected route prediction 336 maysimilarly be used to train the predictive model 328. For example, afterthe corrected route prediction 336 is generated, the corrected routeprediction 336 may be provided to the predictive model 328, which maycompare the corrected route prediction 336 to the initial routeprediction 330 and identify one or more errors in the initial routeprediction 330 based on the corrected route prediction 336. Thepredictive model 328 may then be updated to account for the identifiederrors, similar to updating the predictive model 334 at block 606.

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memories, asdiscussed in greater detail below. Embodiments within the scope of thepresent disclosure also include physical and other computer-readablemedia for carrying or storing computer-executable instructions and/ordata structures. In particular, one or more of the processes describedherein may be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system, including byone or more servers. Computer-readable media that storecomputer-executable instructions are non-transitory computer-readablestorage media (devices). Computer-readable media that carrycomputer-executable instructions are transmission media. Thus, by way ofexample, and not limitation, embodiments of the disclosure can compriseat least two distinctly different kinds of computer-readable media:non-transitory computer-readable storage media (devices) andtransmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general-purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, virtual reality devices, personalcomputers, desktop computers, laptop computers, message processors,hand-held devices, multi-processor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, mobile telephones, PDAs, tablets, pagers, routers, switches,and the like. The disclosure may also be practiced in distributed systemenvironments where local and remote computer systems, which are linked(either by hardwired data links, wireless data links, or by acombination of hardwired and wireless data links) through a network,both perform tasks. In a distributed system environment, program modulesmay be located in both local and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a model for enabling on-demand network access to a sharedpool of configurable computing resources. For example, cloud computingcan be employed in the marketplace to offer ubiquitous and convenienton-demand access to the shared pool of configurable computing resources.The shared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In this description and in the claims, a “cloud-computingenvironment” is an environment in which cloud computing is employed.

Turning now to FIG. 7 , this figure illustrates a flowchart of a seriesof acts 700 of using an artificial neural network to determineroute-accuracy metrics for regions along a route (e.g., an actual route)traveled by a client device in accordance with one or more embodiments.While FIG. 7 illustrates acts according to one embodiment, alternativeembodiments may omit, add to, reorder, and/or modify any of the actsshown in FIG. 7 . The acts of FIG. 7 can be performed as part of amethod. Alternatively, a non-transitory computer readable storage mediumcan comprise instructions that, when executed by one or more processors,cause a computing device to perform the acts depicted in FIG. 7 . Instill further embodiments, a system can perform the acts of FIG. 7 .

As shown in FIG. 7 , the acts 700 include an act 710 of identifying aset of GPS locations and a corresponding set of map-matched locationsfor a route. For example, in some embodiments, the act 710 includesidentifying a set of GPS locations and a corresponding set ofmap-matched locations for a route traveled by a client device. Incertain implementations, the client device is associated with atransportation vehicle.

As further shown in FIG. 7 , the acts 700 include an act 720 ofsegmenting the set of GPS locations and the corresponding set ofmap-matched locations into regions along the route. For instance, incertain embodiments, the act 720 includes segmenting the set of GPSlocations and the corresponding set of map-matched locations into one ormore regions along the route, wherein each region of the one or moreregions comprises a subset of GPS locations and a subset of map-matchedlocations.

As further shown in FIG. 7 , the acts 700 include an act 730 ofutilizing a trained artificial neural network to determine aroute-accuracy metric for each region. As noted above, theroute-accuracy metric may take a variety of forms. For example, in someembodiments, the route-accuracy metric comprises a classifier indicatingthe subset of GPS locations; and determining the distance of the routebased on the route-accuracy metric comprises determining a regionaldistance traveled by the client device within the region based on thesubset of GPS locations. In some such embodiments, the acts 700 furtherinclude, based on the classifier indicating the subset of GPS locations,adjusting a digital map for the region to correspond to the subset ofGPS locations.

As further shown in FIG. 7 , the acts 700 include an act 740 ofselecting, for each region, one of the subset of GPS locations or thesubset of map-matched locations. For instance, in some embodiments, theact 740 includes selecting, for each region, one of the subset of GPSlocations or the subset of map-matched locations based on theroute-accuracy metric.

Finally, as shown in FIG. 7 , the acts 700 include an act 750 ofupdating the route to include the selected subset of GPS locations orthe selected subset of map-matched locations for each region. Forexample, in some embodiments, updating the route comprises determining adistance of the route based on the selected subset of GPS locations orthe selected subset of map-matched locations for each region. As anotherexample, in certain implementations, updating the route comprisesadjusting a digital map for the region to correspond to the selectedsubset of GPS locations or the selected subset of map-matched locationsfor each region.

In addition to the acts 710-750, in certain embodiments, the acts 700further include generating, for each region, a route tile for the regionbased on the subset of GPS locations for the region and the subset ofmap-matched locations for the region. In some such embodiments,utilizing the trained artificial neural network to determine theroute-accuracy metric for each region comprises utilizing the trainedartificial neural network to analyze the route tile for the region togenerate the route-accuracy metric for the region.

Relatedly, in certain implementations, generating the route tile foreach region comprises generating a first image matrix for the regioncomprising a representation of the subset of GPS locations for theregion; and generating a second image matrix for the region comprising arepresentation of the subset of map-matched locations for the region. Insome such implementations, generating the route tile for each regioncomprises determining a first estimated path of the client device withinthe region based on the subset of GPS locations for the region and asecond estimated path of the client device with the region based on thesubset of map-matched locations for the region; the first image matrixcomprises a first set of pixels that represent the first estimated pathof the client device within the region and a second set of pixels thatrepresent positions outside of the first estimated path within theregion; and the second image matrix comprises a third set of pixels thatrepresent the second estimated path of the client device within theregion and a fourth set of pixels that represent positions outside ofthe second estimated path within the region.

As noted above, the intelligent transportation routing system 104 trainsan artificial network. In some such embodiments, generating the trainedartificial neural network comprises generating a training route tile fora training region along a training route based on training GPS locationsand corresponding training map-matched locations; utilizing anartificial neural network to predict a route-accuracy metric for thetraining region based on the training route tile; and generating thetrained artificial neural network by comparing the route-accuracy metricto a ground-truth-route-accuracy metric for the training region.

Relatedly, in some implementations, generating the simulated trainingGPS locations comprises creating simulated route locations for thetraining route within a road network based on standard-travelingpatterns of transportation vehicles; and generating the simulatedtraining GPS locations by transforming the simulated route locationsbased on a GPS-noise model. Additionally, in one or more embodiments,generate the ground-truth-route-accuracy metric for the training regioncomprises determining an error value between the simulated training GPSlocations and the simulated route locations; and comparing thedetermined error value to a noise threshold.

In some embodiments, the acts 700 include an alternative set of acts.For example, in some embodiments, the acts 700 include identifying GPSlocations and map-matched locations for a route. For example, in someembodiments, the acts 700 include identifying GPS locations for a routetraveled by a client device and map-matched locations for the route,wherein the client device is associated with a transportation vehicle.

Additionally, in certain embodiments, the acts 700 include generatingregions along the route. For instance, in certain embodiments, the acts700 include generating a plurality of regions along the route, wherein aregion comprises a subset of GPS locations and a subset of map-matchedlocations.

Moreover, in some implementations, the acts 700 include generating aroute tile for the region. For example, in some implementations, the act700 includes generating a route tile for the region based on the subsetof GPS locations and the subset of map-matched locations.

Further, in certain implementations, the acts 700 include utilizing anartificial neural network to determine a route-accuracy metric for theregion. For instance, in some embodiments, the acts 700 includesutilizing an artificial neural network to determine a route-accuracymetric for the region based on the route tile. In certain embodiments,the route-accuracy metric for the region comprises an accuracyclassifier for the route tile indicating a level of noise of the subsetof GPS locations.

Finally, in some such embodiments, the acts 700 include determining adistance of the route based on the route-accuracy metric. As notedabove, the route-accuracy metric may take a variety of forms. Forexample, in some embodiments, the route-accuracy metric comprises aclassifier indicating the subset of GPS locations; and determining thedistance of the route based on the route-accuracy metric comprisesdetermining a regional distance traveled by the client device within theregion based on the subset of GPS locations. In some such embodiments,the acts 700 further include, based on the classifier indicating thesubset of GPS locations, adjusting a digital map for the region tocorrespond to the subset of GPS locations.

Alternatively, in some embodiments, the route-accuracy metric comprisesa classifier indicating the subset of map-matched locations; anddetermining the distance of the route based on the route-accuracy metriccomprises determining a regional distance traveled by the client devicewithin the region based on the subset of map-matched locations.

Additionally, in certain embodiments, the route-accuracy metric for theregion comprises a regional distance traveled by the client devicewithin the region based on the route tile; and determining the distanceof the route based on the route-accuracy metric comprises determiningthe distance of the route based on the regional distance traveled by theclient device within the region.

As suggested above, in some embodiments, the acts 700 further includeutilizing the artificial neural network to determine an additionalroute-accuracy metric for an additional region based on an additional aroute tile; and determining the distance of the route based on theadditional route-accuracy metric for the additional region and theroute-accuracy metric for the region.

FIG. 8 illustrates, in block diagram form, an exemplary computing device800 that may be configured to perform one or more of the processesdescribed above. One will appreciate that the intelligent transportationrouting system 104 can comprise implementations of the computing device800, including, but not limited to, the server(s) 102, the requestorclient devices 110, the provider client device 116, the user device 302,the completed transportation route database 310, and the server 324. Asshown by FIG. 8 , the computing device can comprise a processor 802,memory 804, a storage device 806, an I/O interface 808, and acommunication interface 810. In certain embodiments, the computingdevice 800 can include fewer or more components than those shown in FIG.8 . Components of computing device 800 shown in FIG. 8 will now bedescribed in additional detail.

In particular embodiments, processor(s) 802 includes hardware forexecuting instructions, such as those making up a computer program. Asan example, and not by way of limitation, to execute instructions,processor(s) 802 may retrieve (or fetch) the instructions from aninternal register, an internal cache, memory 804, or a storage device806 and decode and execute them.

The computing device 800 includes memory 804, which is coupled to theprocessor(s) 802. The memory 804 may be used for storing data, metadata,and programs for execution by the processor(s) 802. The memory 804 mayinclude one or more of volatile and non-volatile memories, such asRandom Access Memory (“RAM”), Read Only Memory (“ROM”), a solid-statedisk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of datastorage. The memory 804 may be internal or distributed memory.

The computing device 800 includes a storage device 806 for storing dataor instructions. As an example, and not by way of limitation, storagedevice 806 can comprise a non-transitory storage medium described above.The storage device 806 may include a hard disk drive (“HDD”), flashmemory, a Universal Serial Bus (“USB”) drive or a combination of theseor other storage devices.

The computing device 800 also includes one or more input or output(“I/O”) interface 808, which are provided to allow a user (e.g.,requestor or provider) to provide input to (such as user strokes),receive output from, and otherwise transfer data to and from thecomputing device 800. These I/O interface 808 may include a mouse,keypad or a keyboard, a touch screen, camera, optical scanner, networkinterface, modem, other known I/O devices or a combination of such I/Ointerface 808. The touch screen may be activated with a stylus or afinger.

The I/O interface 808 may include one or more devices for presentingoutput to a user, including, but not limited to, a graphics engine, adisplay (e.g., a display screen), one or more output providers (e.g.,display providers), one or more audio speakers, and one or more audioproviders. In certain embodiments, the I/O interface 808 is configuredto provide graphical data to a display for presentation to a user. Thegraphical data may be representative of one or more graphical userinterfaces and/or any other graphical content as may serve a particularimplementation.

The computing device 800 can further include a communication interface810. The communication interface 810 can include hardware, software, orboth. The communication interface 810 can provide one or more interfacesfor communication (such as, for example, packet-based communication)between the computing device and one or more other computing devices 800or one or more networks. As an example, and not by way of limitation,communication interface 810 may include a network interface controller(“NIC”) or network adapter for communicating with an Ethernet or otherwire-based network or a wireless NIC (“WNIC”) or wireless adapter forcommunicating with a wireless network, such as a WI-FI. The computingdevice 800 can further include a bus 812. The bus 812 can comprisehardware, software, or both that couples components of computing device800 to each other.

FIG. 9 illustrates an example network environment 900 of an intelligenttransportation routing system. The network environment 900 includes anintelligent transportation routing system 902, a client device 906, anda vehicle subsystem 908 connected to each other by a network 904.Although FIG. 9 illustrates a particular arrangement of the intelligenttransportation routing system 902, client device 906, vehicle subsystem908, and network 904, this disclosure contemplates any suitablearrangement of the intelligent transportation routing system 902, clientdevice 906, vehicle subsystem 908, and network 904. As an example, andnot by way of limitation, two or more of the client device 906,intelligent transportation routing system 902, and vehicle subsystem 908communicate directly, bypassing network 904. As another example, two ormore of the client device 906, intelligent transportation routing system902, and vehicle subsystem 908 may be physically or logically co-locatedwith each other in whole or in part. Moreover, although FIG. 9illustrates a particular number of client devices 906, intelligenttransportation routing systems 902, vehicle subsystems 908, and networks904, this disclosure contemplates any suitable number of client devices906, intelligent transportation routing systems 902, vehicle subsystems908, and networks 904. As an example, and not by way of limitation,network environment 900 may include multiple client devices 906,intelligent transportation routing systems 902, vehicle subsystems 908,and networks 904.

This disclosure contemplates any suitable network 904. As an example,and not by way of limitation, one or more portions of network 904 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (“VPN”), a local area network (“LAN”), a wireless LAN (“WLAN”),a wide area network (“WAN”), a wireless WAN (“WWAN”), a metropolitanarea network (“MAN”), a portion of the Internet, a portion of the PublicSwitched Telephone Network (“PSTN”), a cellular telephone network, or acombination of two or more of these. Network 904 may include one or morenetworks 904.

Links may connect client device 906, intelligent transportation routingsystem 902, and vehicle subsystem 908 to network 904 or to each other.This disclosure contemplates any suitable links. In particularembodiments, one or more links include one or more wireline (such as forexample Digital Subscriber Line (“DSL”) or Data Over Cable ServiceInterface Specification (“DOCSIS”), wireless (such as for example Wi-Fior Worldwide Interoperability for Microwave Access (“WiMAX”), or optical(such as for example Synchronous Optical Network (“SONET”) orSynchronous Digital Hierarchy (“SDH”) links. In particular embodiments,one or more links each include an ad hoc network, an intranet, anextranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of theInternet, a portion of the PSTN, a cellular technology-based network, asatellite communications technology-based network, another link, or acombination of two or more such links. Links need not necessarily be thesame throughout network environment 900. One or more first links maydiffer in one or more respects from one or more second links.

In particular embodiments, client device 906 may be an electronic deviceincluding hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientdevice 906. As an example, and not by way of limitation, a client device906 may include any of the computing devices discussed above in relationto FIG. 8 . A client device 906 may enable a network user at clientdevice 906 to access network 904. A client device 906 may enable itsuser to communicate with other users at other client devices 906.

In particular embodiments, client device 906 may include a requestorapplication or a web browser, such as MICROSOFT INTERNET EXPLORER,GOOGLE CHROME or MOZILLA FIREFOX, and may have one or more add-ons,plug-ins, or other extensions, such as TOOLBAR or YAHOO TOOLBAR. A userat client device 906 may enter a Uniform Resource Locator (“URL”) orother address directing the web browser to a particular server (such asserver), and the web browser may generate a Hyper Text Transfer Protocol(“HTTP”) request and communicate the HTTP request to server. The servermay accept the HTTP request and communicate to client device 906 one ormore Hyper Text Markup Language (“HTML”) files responsive to the HTTPrequest. Client device 906 may render a webpage based on the HTML filesfrom the server for presentation to the user. This disclosurecontemplates any suitable webpage files. As an example, and not by wayof limitation, webpages may render from HTML files, Extensible HyperText Markup Language (“XHTML”) files, or Extensible Markup Language(“XML”) files, according to particular needs. Such pages may alsoexecute scripts such as, for example and without limitation, thosewritten in JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinations ofmarkup language and scripts such as AJAX (Asynchronous JAVASCRIPT andXML), and the like. Herein, reference to a webpage encompasses one ormore corresponding webpage files (which a browser may use to render thewebpage) and vice versa, where appropriate.

In particular embodiments, intelligent transportation routing system 902may be a network-addressable computing system that can host atransportation matching network. Intelligent transportation routingsystem 902 may generate, store, receive, and send data, such as, forexample, user-profile data, concept-profile data, text data,transportation request data, GPS location data, provider data, requestordata, vehicle data, or other suitable data related to the transportationmatching network. This may include authenticating the identity ofproviders and/or vehicles who are authorized to provide transportationservices through the intelligent transportation routing system 902. Inaddition, the dynamic transportation matching system may manageidentities of service requestors such as users/requestors. Inparticular, the dynamic transportation matching system may maintainrequestor data such as driving/riding histories, personal data, or otheruser data in addition to navigation and/or traffic management servicesor other location services (e.g., GPS services).

In particular embodiments, the intelligent transportation routing system902 may manage transportation matching services to connect auser/requestor with a vehicle and/or provider. By managing thetransportation matching services, the intelligent transportation routingsystem 902 can manage the distribution and allocation of resources fromthe vehicle subsystems 908 and user resources such as GPS location andavailability indicators, as described herein.

Intelligent transportation routing system 902 may be accessed by theother components of network environment 900 either directly or vianetwork 904. In particular embodiments, intelligent transportationrouting system 902 may include one or more servers. Each server may be aunitary server or a distributed server spanning multiple computers ormultiple datacenters. Servers may be of various types, such as, forexample and without limitation, web server, news server, mail server,message server, advertising server, file server, application server,exchange server, database server, proxy server, another server suitablefor performing functions or processes described herein, or anycombination thereof. In particular embodiments, each server may includehardware, software, or embedded logic components or a combination of twoor more such components for carrying out the appropriate functionalitiesimplemented or supported by server. In particular embodiments,intelligent transportation routing system 902 may include one or moredata stores. Data stores may be used to store various types ofinformation. In particular embodiments, the information stored in datastores may be organized according to specific data structures. Inparticular embodiments, each data store may be a relational, columnar,correlation, or other suitable database. Although this disclosuredescribes or illustrates particular types of databases, this disclosurecontemplates any suitable types of databases. Particular embodiments mayprovide interfaces that enable a client device 906, or an intelligenttransportation routing system 902 to manage, retrieve, modify, add, ordelete, the information stored in data store.

In particular embodiments, intelligent transportation routing system 902may provide users with the ability to take actions on various types ofitems or objects, supported by intelligent transportation routing system902. As an example, and not by way of limitation, the items and objectsmay include transportation matching networks to which users ofintelligent transportation routing system 902 may belong, vehicles thatusers may request, location designators, computer-based applicationsthat a user may use, transactions that allow users to buy or sell itemsvia the service, interactions with advertisements that a user mayperform, or other suitable items or objects. A user may interact withanything that is capable of being represented in intelligenttransportation routing system 902 or by an external system of athird-party system, which is separate from intelligent transportationrouting system 902 and coupled to intelligent transportation routingsystem 902 via a network 904.

In particular embodiments, intelligent transportation routing system 902may be capable of linking a variety of entities. As an example, and notby way of limitation, intelligent transportation routing system 902 mayenable users to interact with each other or other entities, or to allowusers to interact with these entities through an application programminginterfaces (“API”) or other communication channels.

In particular embodiments, intelligent transportation routing system 902may include a variety of servers, sub-systems, programs, modules, logs,and data stores. In particular embodiments, intelligent transportationrouting system 902 may include one or more of the following: a webserver, action logger, API-request server, relevance-and-ranking engine,content-object classifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. Intelligent transportationrouting system 902 may also include suitable components such as networkinterfaces, security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments,intelligent transportation routing system 902 may include one or moreuser-profile stores for storing user profiles. A user profile mayinclude, for example, biographic information, demographic information,behavioral information, social information, or other types ofdescriptive information, such as work experience, educational history,hobbies or preferences, interests, affinities, or location.

The web server may include a mail server or other messagingfunctionality for receiving and routing messages between intelligenttransportation routing system 902 and one or more client devices 906. Anaction logger may be used to receive communications from a web serverabout a user's actions on or off intelligent transportation routingsystem 902. In conjunction with the action log, athird-party-content-object log may be maintained of user exposures tothird-party-content objects. A notification controller may provideinformation regarding content objects to a client device 906.Information may be pushed to a client device 906 as notifications, orinformation may be pulled from client device 906 responsive to a requestreceived from client device 906. Authorization servers may be used toenforce one or more privacy settings of the users of intelligenttransportation routing system 902. A privacy setting of a userdetermines how particular information associated with a user can beshared. The authorization server may allow users to opt in to or opt outof having their actions logged by intelligent transportation routingsystem 902 or shared with other systems, such as, for example, bysetting appropriate privacy settings. Third-party-content-object storesmay be used to store content objects received from third parties.Location stores may be used for storing location information receivedfrom client devices 906 associated with users.

In addition, the vehicle subsystem 908 can include a human-operatedvehicle or an autonomous vehicle. A provider of a human-operated vehiclecan perform maneuvers to pick up, transport, and drop off one or morerequestors according to the embodiments described herein. In certainembodiments, the vehicle subsystem 908 can include an autonomousvehicle—i.e., a vehicle that does not require a human operator. When atransportation vehicle is an autonomous vehicle, the transportationvehicle may include additional components not depicted in FIG. 1A orFIG. 9 , such as location components, one or more sensors by which theautonomous vehicle navigates, and/or other components necessary tonavigate without a provider (or with minimal interactions with aprovider). In these embodiments, the vehicle subsystem 908 can performmaneuvers, communicate, and otherwise function without the aid of ahuman provider, in accordance with available technology.

Additionally, in some embodiments, the vehicle subsystem 908 includes ahybrid self-driving vehicle with both self-driving functionality andsome human operator interaction. This human operator interaction maywork in concert with or independent of the self-driving functionality.In other embodiments, the vehicle subsystems 908 includes an autonomousprovider that acts as part of the transportation vehicle, such as acomputer-based navigation and driving system that acts as part of atransportation vehicle. Regardless of whether a transportation vehicleis associated with a provider, a transportation vehicle optionallyincludes a locator device, such as a GPS device, that determines thelocation of the transportation vehicle within the vehicle subsystem 908.

In particular embodiments, the vehicle subsystem 908 may include one ormore sensors incorporated therein or associated thereto. For example,sensor(s) 910 can be mounted on the top of the vehicle subsystem 908 orelse can be located within the interior of the vehicle subsystem 908. Incertain embodiments, the sensor(s) 910 can be located in multiple areasat once—i.e., split up throughout the vehicle subsystem 908 so thatdifferent components of the sensor(s) 910 can be placed in differentlocations in accordance with optimal operation of the sensor(s) 910. Inthese embodiments, the sensor(s) 910 can include a LIDAR sensor and aninertial measurement unit (“IMU”) including one or more accelerometers,one or more gyroscopes, and one or more magnetometers. The sensor(s) 910can additionally or alternatively include a wireless IMU (“WIMU”), oneor more cameras, one or more microphones, or other sensors or data inputdevices capable of receiving and/or recording information relating tonavigating a route to pick up, transport, and/or drop off a requestor.

In particular embodiments, the vehicle subsystem 908 may include acommunication device capable of communicating with the client device 906and/or the intelligent transportation routing system 902. For example,the vehicle subsystem 908 can include an on-board computing devicecommunicatively linked to the network 904 to transmit and receive datasuch as GPS location information, sensor-related information, requestorlocation information, or other relevant information.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. Various embodimentsand aspects of the invention(s) are described with reference to detailsdiscussed herein, and the accompanying drawings illustrate the variousembodiments. The description above and drawings are illustrative of theinvention and are not to be construed as limiting the invention.Numerous specific details are described to provide a thoroughunderstanding of various embodiments of the present invention.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. For example, the methods described herein may beperformed with less or more steps/acts or the steps/acts may beperformed in differing orders. Additionally, the steps/acts describedherein may be repeated or performed in parallel with one another or inparallel with different instances of the same or similar steps/acts. Thescope of the invention is, therefore, indicated by the appended claimsrather than by the foregoing description. All changes that come withinthe meaning and range of equivalency of the claims are to be embracedwithin their scope.

The invention claimed is:
 1. A computer-implemented method comprising:receiving, by a transportation matching system, a transportation requestfrom a mobile device, wherein the transportation request comprises atleast two locations; generating, in response to the transportationrequest, an initial route prediction, wherein the initial routeprediction is generated utilizing a first predictive model based on afirst set of previously-completed routes associated with the at leasttwo locations; comparing, utilizing a second predictive model, theinitial route prediction generated utilizing the first predictive modelwith route information associated with a second set ofpreviously-completed routes identified at least in part based on theinitial route prediction; generating, based on the comparison, acorrected route prediction for the transportation request; and trainingthe second predictive model by: receiving, after fulfillment of thetransportation request, actual route information corresponding to thefulfillment of the transportation request; determining one or moreerrors between the corrected route prediction and the actual routeinformation; and updating the second predictive model based on the oneor more errors.
 2. The computer-implemented method of claim 1, furthercomprising identifying the second set of previously-completed routesutilizing one or more weights of the second predictive model.
 3. Thecomputer-implemented method of claim 2, wherein training the secondpredictive model comprises updating the one or more weights of thesecond predictive model used to identify the second set ofpreviously-completed routes.
 4. The computer-implemented method of claim1, further comprising: identifying, based on the comparison, at leastone route prediction error in the initial route prediction; and trainingthe first predictive model based on the at least one route predictionerror.
 5. The computer-implemented method of claim 4, wherein the atleast one route prediction error comprises at least one error selectedfrom a group comprising: a pickup time error for a vehicle assigned toservice the transportation request, a pickup distance error for avehicle assigned to service the transportation request, a travel timeerror for an amount of time spent in transit between the at least twolocations, and a distance error for a total amount of distance traveledbetween the at least two locations.
 6. The computer-implemented methodof claim 4, wherein training the first predictive model comprisesupdating one or more weights of the first predictive model used toidentify the first set of previously-completed routes.
 7. Anon-transitory computer readable storage medium comprising instructionsthat, when executed by at least one processor, cause the at least oneprocessor to: receiving, by a transportation matching system, atransportation request from a mobile device, wherein the transportationrequest comprises at least two locations; generating, in response to thetransportation request, an initial route prediction, wherein the initialroute prediction is generated utilizing a first predictive model basedon a first set of previously-completed routes associated with the atleast two locations; comparing, utilizing a second predictive model, theinitial route prediction generated utilizing the first predictive modelwith route information associated with a second set ofpreviously-completed routes identified at least in part based on theinitial route prediction; generating, based on the comparison, acorrected route prediction for the transportation request; and trainingthe second predictive model by: receiving, after fulfillment of thetransportation request, actual route information corresponding to thefulfillment of the transportation request; determining one or moreerrors between the corrected route prediction and the actual routeinformation; and updating the second predictive model based on the oneor more errors.
 8. The non-transitory computer readable storage mediumof claim 7, further comprising instructions that, when executed by theat least one processor, cause the at least one processor to identify thesecond set of previously-completed routes utilizing one or more weightsof the second predictive model.
 9. The non-transitory computer readablestorage medium of claim 8, further comprising instructions that, whenexecuted by the at least one processor, cause the at least one processorto train the second predictive model by updating the one or more weightsof the second predictive model used to identify the second set ofpreviously-completed routes.
 10. The non-transitory computer readablestorage medium of claim 8, further comprising instructions that, whenexecuted by the at least one processor, cause the at least one processorto: identify, based on the comparison, at least one route predictionerror in the initial route prediction; and train the first predictivemodel based on the at least one route prediction error.
 11. Thenon-transitory computer readable storage medium of claim 10, furthercomprising instructions that, when executed by the at least oneprocessor, cause the at least one processor to select the at least oneroute prediction error from: a pickup time error for a vehicle assignedto service the transportation request, a pickup distance error for avehicle assigned to service the transportation request, a travel timeerror for an amount of time spent in transit between the at least twolocations, or a distance error for a total amount of distance traveledbetween the at least two locations.
 12. The non-transitory computerreadable storage medium of claim 10, further comprising instructionsthat, when executed by the at least one processor, cause the at leastone processor to update one or more weights of the first predictivemodel used to identify the first set of previously-completed routes. 13.The non-transitory computer readable storage medium of claim 7, furthercomprising instructions that, when executed by the at least oneprocessor, cause the at least one processor to identify the second setof previously-completed routes based on a similarity with the initialroute prediction selected, the similarity comprising at least one asimilar predicted starting location, a similar predicted endinglocation, a similar predicted travel distance, a similar predictedtravel time, or a similar predicted route.
 14. A system comprising: atleast one processor; and a non-transitory computer-readable mediumcomprising instructions that, when executed by the at least oneprocessor, to cause the system to: receive, by a transportation matchingsystem, a transportation request from a mobile device, wherein thetransportation request comprises at least two locations; generate, inresponse to the transportation request, an initial route prediction,wherein the initial route prediction is generated utilizing a firstpredictive model based on a first set of previously-completed routesassociated with the at least two locations; compare, utilizing a secondpredictive model, the initial route prediction generated utilizing thefirst predictive model with route information associated with a secondset of previously-completed routes identified at least in part based onthe initial route prediction; generate, based on the comparison, acorrected route prediction for the transportation request; and train thesecond predictive model by: receiving, after fulfillment of thetransportation request, actual route information corresponding to thefulfillment of the transportation request; determining one or moreerrors between the corrected route prediction and the actual routeinformation; and updating the second predictive model based on the oneor more errors.
 15. The system of claim 14, further comprisinginstructions that, when executed by the at least one processor, causethe system to identify the second set of previously-completed routesutilizing one or more weights of the second predictive model.
 16. Thesystem of claim 15, further comprising instructions that, when executedby the at least one processor, cause the system to train the secondpredictive model by updating the one or more weights of the secondpredictive model used to identify the second set of previously-completedroutes.
 17. The system of claim 14, further comprising instructionsthat, when executed by the at least one processor, cause the system to:identify, based on the comparison, at least one route prediction errorin the initial route prediction; and train the first predictive modelbased on the at least one route prediction error.
 18. The system ofclaim 17, further comprising instructions that, when executed by the atleast one processor, cause the system to select the at least one routeprediction error from: a pickup time error for a vehicle assigned toservice the transportation request, a pickup distance error for avehicle assigned to service the transportation request, a travel timeerror for an amount of time spent in transit between the at least twolocations, or a distance error for a total amount of distance traveledbetween the at least two locations.
 19. The system of claim 17, furthercomprising instructions that, when executed by the at least oneprocessor, cause the system to train the first predictive model byupdating one or more weights of the first predictive model used toidentify the first set of previously-completed routes.
 20. The system ofclaim 14, further comprising instructions that, when executed by the atleast one processor, cause the system to generate the corrected routeprediction by generating one or more of a corrected pickup time for avehicle assigned to service the transportation request, a correcteddrop-off time associated with the transportation request, or a correctedtravel time associated with the transportation request.